package Models;


import java.util.ArrayList;

import Controller.DBportal;


public class Recipe {
	
	
	private String idRecipe ;
	private String name;
	private String style;
	private String idParent ; //may be null
	private String IBU ; //may be null
	private String boilTime ; //may be null
	private String mashTemp ; //may be null
	private String mashTime ; //may be null
	private String OG ; //may be null
	private String FG ; //may be null
	private String preBoilVol ; //may be null
	private String postBoilVol ; //may be null
	private String efficiency ; //may be null
	private String brewDate; //may be null
	
	private ArrayList<String> fermData;
	private ArrayList<Note> notes;
	private ArrayList<Addition> additions;


	
	//add note
	//delete note
	//new note
	
	//add addition
	//remove addition
	//edit addition

	/*
	 * Default constructor, creates an empty recipe.
	 */
	public Recipe() {
		
	}
	
	
	/**
	 * Copies a recipe, does not copy notes
	 */
	public Recipe(Recipe old) { 
		this.idRecipe = old.idRecipe;
		this.name = old.name;
		this.style = old.style;
		this.idParent = old.idParent; //may be null
		this.IBU = old.IBU; //may be null
		this.boilTime = old.boilTime; //may be null
		this.mashTemp = old.mashTemp; //may be null
		this.mashTime = old.mashTime; //may be null
		this.OG = old.OG; //may be null
		this.FG = old.FG; //may be null
		this.preBoilVol = old.preBoilVol; //may be null
		this.postBoilVol = old.postBoilVol; //may be null
		this.efficiency = old.efficiency; //may be null
		this.brewDate = old.brewDate; //may be null
		
		fermData = new ArrayList<String>();
		for(String st: old.fermData) {
			fermData.add(st);
		}
		
		notes = new ArrayList<Note>();
		
		additions = new ArrayList<Addition>();
		for(Addition ad: old.additions){
			additions.add(new Addition(ad));
		}
	}

	/**
	 * @return the idRecipe
	 */
	public String getIdRecipe() {
		return idRecipe;
	}

	/**
	 * @return the idParent
	 */
	public String getIdParent() {
		return idParent;
	}

	/**
	 * @return the iBU
	 */
	public String getIBU() {
		return IBU;
	}

	/**
	 * @return the boilTime
	 */
	public String getBoilTime() {
		return boilTime;
	}

	/**
	 * @return the mashTemp
	 */
	public String getMashTemp() {
		return mashTemp;
	}

	/**
	 * @return the mashTime
	 */
	public String getMashTime() {
		return mashTime;
	}

	/**
	 * @return the oG
	 */
	public String getOG() {
		return OG;
	}

	/**
	 * @return the fG
	 */
	public String getFG() {
		return FG;
	}

	/**
	 * @return the preBoilVol
	 */
	public String getPreBoilVol() {
		return preBoilVol;
	}

	/**
	 * @return the postBoilVol
	 */
	public String getPostBoilVol() {
		return postBoilVol;
	}

	/**
	 * @return the efficiency
	 */
	public String getEfficiency() {
		return efficiency;
	}

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @return the style
	 */
	public String getStyle() {
		return style;
	}


	/**
	 * @return the brewDate
	 */
	public String getBrewDate() {
		return brewDate;
	}

	/**
	 * @return the fermData
	 */
	public ArrayList<String> getFermData() {
		return fermData;
	}

	/**
	 * @return the notes
	 */
	public ArrayList<Note> getNotes() {
		return notes;
	}

	/**
	 * @return the addition
	 */
	public ArrayList<Addition> getAddition() {
		return additions;
	}

	/**
	 * @param idRecipe the idRecipe to set
	 */
	public void setIdRecipe(String idRecipe) {
		this.idRecipe = idRecipe;
	}

	/**
	 * @param idParent the idParent to set
	 */
	public void setIdParent(String idParent) {
		this.idParent = idParent;
	}

	/**
	 * @param iBU the iBU to set
	 */
	public void setIBU(String iBU) {
		IBU = iBU;
	}

	/**
	 * @param boilTime the boilTime to set
	 */
	public void setBoilTime(String boilTime) {
		this.boilTime = boilTime;
	}

	/**
	 * @param mashTemp the mashTemp to set
	 */
	public void setMashTemp(String mashTemp) {
		this.mashTemp = mashTemp;
	}

	/**
	 * @param mashTime the mashTime to set
	 */
	public void setMashTime(String mashTime) {
		this.mashTime = mashTime;
	}

	/**
	 * @param oG the oG to set
	 */
	public void setOG(String oG) {
		OG = oG;
	}

	/**
	 * @param fG the fG to set
	 */
	public void setFG(String fG) {
		FG = fG;
	}

	/**
	 * @param preBoilVol the preBoilVol to set
	 */
	public void setPreBoilVol(String preBoilVol) {
		this.preBoilVol = preBoilVol;
	}

	/**
	 * @param postBoilVol the postBoilVol to set
	 */
	public void setPostBoilVol(String postBoilVol) {
		this.postBoilVol = postBoilVol;
	}

	/**
	 * @param efficiency the efficiency to set
	 */
	public void setEfficiency(String efficiency) {
		this.efficiency = efficiency;
	}

	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @param style the style to set
	 */
	public void setStyle(String style) {
		this.style = style;
	}


	/**
	 * @param brewDate the brewDate to set
	 */
	public void setBrewDate(String brewDate) {
		this.brewDate = brewDate;
	}

	/**
	 * @param fermData the fermData to set
	 */
	public void setFermData(ArrayList<String> fermData) {
		this.fermData = fermData;
	}

	/**
	 * @param notes the notes to set
	 */
	public void setNotes(ArrayList<Note> notes) {
		this.notes = notes;
	}

	/**
	 * @param addition the addition to set
	 */
	public void setAddition(ArrayList<Addition> addition) {
		this.additions = addition;
	}
	

	

		
		

		
	
}
